﻿using System.Runtime.InteropServices;

namespace Microsoft.WowAddonStudio.Services
{
    [Guid("1F37A8BB-9440-4c9f-A40F-25A84B898018")]
    public interface ILuaRuntimeService
    {

		/// <summary>
		/// Adds and loads lua code file into runtime.
		/// </summary>
		/// <param name="filePath"></param>
        void AddLuaFile(string filePath);

		/// <summary>
		/// Removes and unloads lua code file from runtime.
		/// </summary>
		/// <param name="filePath"></param>
        void RemoveLuaFile(string filePath);

        /// <summary>
        /// Evaluates a lua expression in the context of the current Lua runtime.
        /// </summary>
        /// <param name="luaExpression">The lua expression to evaluate.</param>
        /// <returns>The return value of the evaluated expression.</returns>
        object EvaluateExpression(string luaExpression);

        /// <summary>
        /// Initializes WoWBench ToolWindowPane.
        /// </summary>
        void ShowWowBenchToolWindow();
    }
}
